package com.example.arr;

import java.util.Arrays;

/**
 * 寻找数组的中心下标
 * 给定一个整数数组nums，请编写一个能够返回数组中心下标的方法
 * 中心下标:是数组的一个下标，其左侧元素之和相加等于右侧元素之和相加
 * 如果不存在该数组下标则返回-1
 * 如果存在多个数组下标则返回最左边的那一个
 * 注意:中心下标可能出现在数组的两端
 */
public class CenterIndex {

    private static int pivotIndex(int[] nums) {
        int sum = Arrays.stream(nums).sum();// 求数组总和
        int total = 0;
        for (int i = 0; i < nums.length; i++) {
            total += nums[i];// 累加数
            // 思想:用sum = total，则当前i就是中心下标
            if (sum == total) {
                return i;
            } else {
                // 如果sum != total，则sum -= sums[i]
                sum -= nums[i];
            }
        }
        return -1;
    }

    public static void main(String[] args) {

        System.out.println(pivotIndex(new int[] {1, 7, 3, 4, 5, 6}));

    }

}
